from django.shortcuts import render, HttpResponse

# Create your views here.
"""
 web应用开发中 数据库中的表应该如何设计?  student   teacher
 1. 需求分析    学生模块  教师模块  
 2. 参与的主体   student  字段    teacher   E-R 模型图 
 3. 数据间的关系     数据库的设计范式   第一范式  列的原子性      第二范式   一对多      第三范式    多对多 
    一对一    用户  -> 身份证号码   
             user          username   password  Idcard  外键 
             user_detail   sex  age  address  Idcard 
               
    一对多   学生  -> 教室   
            student    name  age  sex  room_id  外键    多的一方
            room       id   number  
            
    多对多  student   course
           student
           course
           student_course   关系表    stu_id  course_id    
    表关联查询时  尽可能不要超过3张表     单表操作  分步  

"""
from .models import Boy, Girl


#  添加boy信息
def add_boy(request):
    name = request.GET.get('name')
    age = request.GET.get('age')
    boy = Boy(name=name, age=age)
    boy.save()
    return HttpResponse('add boy ok')


# 添加girl信息
def add_girl(request):
    name = request.GET.get('name')
    age = request.GET.get('age')
    # boy id
    bid = request.GET.get('bid')
    # 属性 boy  boy_id
    girl = Girl(name=name, age=age, boy_id=bid)

    # boy属性  boy对象
    # boy = Boy.objects.filter(id=bid).first()
    # girl = Girl(name=name, age=age, boy=boy)
    girl.save()
    return HttpResponse('add girl ok')


def delete_boy(request):
    bid = request.GET.get('bid')
    Boy.objects.filter(id=bid).delete()
    return HttpResponse('delete boy  ok')


def delete_girl(request):
    gid = request.GET.get('gid')
    Girl.objects.filter(id=gid).delete()
    return HttpResponse('delete girl  ok')


def select_girl(request):
    gid = request.GET.get('gid')
    girl = Girl.objects.filter(id=gid).first()
    b_name = girl.boy.name  # 正向关联
    b_age = girl.boy.age
    print(f'女生的信息是{girl.name},{girl.age},{girl.boy_id},{b_name},{b_age}')
    return HttpResponse('select girl  ok')


def select_boy(request):
    bid = request.GET.get('bid')
    boy = Boy.objects.filter(id=bid).first()
    #  或去对应的女生的信息
    g_name = boy.girl.name  # 反向关联  关联的字段 model名字的小写
    g_age = boy.girl.age
    print(f'男生的信息是{boy.name},{boy.age} 女生信息是{g_name},{g_age}')
    return HttpResponse('select girl  ok')
